This invention relates to providing interactive services and, more particularly, to interactive services with multiple interfaces.
Prior arrangements for implementing interactive services with multiple interfaces employed finite-state machines (FSM) to realize the necessary service logic. This was achieved either explicitly, using FSM tools such as ObjecTime or StateCharts, or implicitly, using programming languages/technologies such as C, C++, Perl or Microsoft Active Server Pages (ASP).
In order to support natural language understanding interaction with users, services with multiple flexible interfaces need to allow the user to provide information beyond what is currently being requested by the service, different ordering of inputs, incomplete information, correction of information and the return of control to previous points in the service. Finite-state machine based approaches, however, cannot support these desired aspects in a modular fashion. Indeed, every possible ordering of inputs needs to be explicitly specified, resulting in an exponentially increasing number of states and transitions in the FSM. Additionally, including the other desirable aspects noted above further increases the size and complexity of the FSM. Moreover, it is extremely difficult to modify the FSM; for example, the number of modifications required to the FSM to add another input can be exponential in the size of the input set.
User interaction with the prior interactive services is in so-called rounds. During each round the user must provide exactly the information requested by the service in its then current state. Specifically, in a graphical interface, the user must click on buttons corresponding to input choices; in a web-based interface, the user must click on buttons or fill in text fields; in a touch-tone telephone interface, the user must press buttons of the key pad; and in an automatic speech recognition based interface, the user must utter exactly the information that the service requires in its current state. Such arrangements are very restrictive in requiring the exactly needed information.
Prior arrangements employed to provide spoken dialog interaction are focused on a single, spoken language interface, which is limiting.
Problems and limitations of prior known arrangements for providing interactive services are overcome by employing a modular approach to implementing interactive services with a plurality, i.e., multiple, user interfaces. Such an approach facilitates supporting natural language understanding interaction with users through use of user interfaces that at least allow the user to provide information beyond what is currently being requested by the service, and/or different ordering of inputs from the user interfaces, and/or incomplete information from the user interfaces, and/or correction of information from the user interfaces, and/or the return of control to prior points in the service in response to a request from at least one of the plurality of user interfaces.
This is realized, in an embodiment of the invention, by employing an interactive service logic that uses xe2x80x9creactive constraint graphsxe2x80x9d, i.e., a form of event-driven graph in which nodes contain constraints on events, in conjunction with a service monitor. The service monitor manages the communication between the service logic and the multiple user interfaces. As such it provides a communication mechanism in the form of a so-called xe2x80x9clook aheadxe2x80x9d in which the user can input information beyond what is currently required by the interactive service.
Specifically, in each round of user interaction, reactive constraint graphs report to the service monitor the set of events that are currently enabled. These enabled events correspond to the information the interactive service is currently requesting (or ready to accept) from a user. The user interfaces collect information (perhaps beyond this set) from the user and send it to the service monitor. The service monitor then matches the received information against the information requested by the service logic, and sends the information one event at a time to the service logic, in a priority order specified by the service provider. After each event is sent to the service logic from the service monitor, the service logic reports its new set of enabled events back to the service monitor. In turn, the service monitor sends another event that matches the enabled events to the service logic. The service monitor then notifies the user interfaces to send a new collection, i.e., set, of information from the individual users only when no current information matches the enabled events. This approach advantageously allows a user to input information beyond what is currently needed by the interactive service.